package com.yxy.service;

import com.yxy.common.PageResult;
import com.yxy.pojo.dto.RouteDTO;
import com.yxy.pojo.dto.RoutePageQueryDTO;
import com.yxy.pojo.dto.RoutePraiseDTO;
import com.yxy.pojo.entity.Geography;
import com.yxy.pojo.vo.RoutePraiseVO;
import com.yxy.pojo.vo.RouteVO;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface RouteService {
    /**
     * 获取所有地理信息
     * @return
     */
    List<Geography> getGeography();

    /**
     * 分页查询
     * @param routePageQueryDTO
     * @return
     */
    PageResult pageQuery(RoutePageQueryDTO routePageQueryDTO);

    /**
     * 新增
     * @param routeDTO
     */
    void add(RouteDTO routeDTO);

    /**
     * 批量删除
     * @param ids
     */
    void batchDelete(List<Integer> ids);

    /**
     * 修改
     * @param routeDTO
     */
    void update(RouteDTO routeDTO);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    RouteVO getRouteById(int id);

    /**
     * 增加浏览量
     * @param id
     * @param views
     */
    void addRouteViews(int id, int views);

    /**
     * 判断是否点赞
     * @param userId
     * @param routeId
     * @return
     */
    RoutePraiseVO isPraise(int userId, int routeId);

    /**
     * 修改点赞
     * @param routePraiseDTO
     */
    void updatePraise(RoutePraiseDTO routePraiseDTO);

    /**
     * 分页查询点赞
     * @param routePageQueryDTO
     * @return
     */
    PageResult pageQueryRoutePraise(RoutePageQueryDTO routePageQueryDTO);
}
